package day06;

import java.util.Arrays;

/**
 * @author Huangjin
 * @version 1.0
 * describe:数组的复制
 * @date 2023/2/17 9:15
 */
public class ArrayDemo {
    public static void main(String[] args) {
        /* 数组的复制*/
        //copyArrayOne();
        /*数组的复制*/
        //copyArrayTwo();
        /* 数组的扩容与缩容*/
        arrayCapacity();
    }

    /**
     * 数组的复制一
     */
    public static void copyArrayOne(){
        /* 数组的复制*/
        int[] a = {10,20,30,40,50};
        int[] b = new int[6];
        //a:源数组
        //1:源数组的起始下标
        //b:目标数组
        //0:目标数组的起始下标
        //4:要复制的长度
        System.arraycopy(a,1,b,0,4);
        System.out.println("目标数组：");
        for (int j : b) {
            System.out.print(j+"\t");
        }
        System.out.println();
        System.out.println("源数组：");
        for (int i : a){
            System.out.print(i+"\t");
        }
        System.out.println();
    }

    /**
     * 数组的复制二
     */
    public static void copyArrayTwo(){
        /* 数组的复制*/
        int[] a = {10,20,30,40,50};
        //a:源数组
        //b:目标数组
        //6:目标数组的长度
        //---若目标数组长度>源数组长度，则末尾补默认值
        //---若目标数组长度<源数组长度，则末尾的截掉
        int[] b = Arrays.copyOf(a,6);
        System.out.println("目标数组：");
        for (int j : b) {
            System.out.print(j+"\t");
        }
        System.out.println();
        System.out.println("源数组：");
        for (int i:a
             ) {
            System.out.print(i+"\t");
        }
    }

    /**
     * 数组的扩容与缩容
     */
    public static void arrayCapacity(){
        /* 数组的扩容 把+变为-即为缩容*/
        int[] a = {10,20,30,40,50};
        a = Arrays.copyOf(a,a.length+1);
        for (int i :a){
            System.out.print(i+"\t");
        }
    }

}
